from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer,Image
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.enums import TA_JUSTIFY
from reportlab.lib.units import inch
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
def generate_pdf(text):
    pdfmetrics.registerFont(TTFont('SimFang', 'simfang.ttf'))
    doc = SimpleDocTemplate("output.pdf", pagesize=letter, rightMargin=72, leftMargin=72, 
                            topMargin=72, bottomMargin=18)
    styles = getSampleStyleSheet()
    style = styles["Normal"]
    style.leading=40
    style.alignment = TA_JUSTIFY
    style.fontName='SimFang'
    style.fontSize=30
    img = Image('c.jpg',width=2.5*inch,height=2.5*inch)
    
    story = [Spacer(1, 1)]
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(img)
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    story.append(Paragraph(text, style))
    doc.build(story)

 
generate_pdf("""这是一段需要自动换行的文本，当文本达到边界时，它会自动移动到下一行。这是一个PDF生成示例，展示如何在Python中使用reportlab库来创建自动换行的文本。""")